home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / CIIGSIncludes / List.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-08-08  |  4.2 KB  |  108 lines  |  [TEXT/MPS ]

  1. /********************************************
  2. ; File: List.h
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc.1986-90
  6. ; All Rights Reserved
  7. ;
  8. ********************************************/
  9. #ifndef __TYPES__
  10. #include <TYPES.h>
  11. #endif
  12.  
  13. #ifndef __QUICKDRAW__
  14. #include <QUICKDRAW.h>
  15. #endif
  16.  
  17. #ifndef __EVENT__
  18. #include <EVENT.h>
  19. #endif
  20.  
  21. #ifndef __CONTROL__
  22. #include <CONTROL.h>
  23. #endif
  24.  
  25. #ifndef __LIST__
  26. #define __LIST__
  27.  
  28.  
  29. /* ListType Masks */
  30. #define cString 0x0001  /* null terminated string type */
  31. #define LIST_STRG 0x0001  /* null terminated string type */
  32. #define selectOnlyOne 0x0002  /* only one selection allowed */
  33. #define LIST_SELECT 0x0002  /* single selection only */
  34.  
  35. /* memFlag Codes */
  36. #define memDisabled 0x40  /* Sets member flag to disabled */
  37. #define memSelected 0x80  /* Sets member flag to selected */
  38. struct LColorTable {
  39.    Word listFrameClr; /* Frame color */
  40.    Word listNorTextClr; /* Unhighlighted text color */
  41.    Word listSelTextClr; /* Highlighted text color */
  42.    Word listNorBackClr; /* Unhighlighted background color */
  43.    Word listSelBackClr; /* Highlighted backgraound color */
  44. } ;
  45. typedef struct LColorTable LColorTable, *LColorTablePtr, **LColorTableHndl;
  46. struct MemRec {
  47.    Pointer memPtr; /* Pointer to string, or custom */
  48.    Byte memFlag; /* Bit Flag */
  49. } ;
  50. typedef struct MemRec MemRec, *MemRecPtr, **MemRecHndl;
  51.  
  52. /* The MemRec is followed by n bytes determined by value of listMemSize field */
  53. struct ListCtlRec {
  54.    CtlRecHndl ctlNext; /* Handle of Next Control */
  55.    WindowPtr ctlOwner; /* Window owner */
  56.    Rect ctlRect; /* Enclosing Rect */
  57.    Byte ctlFlag; /* Bit 7 visible; Bit 0 string type; Bit 1 multiple */
  58.    Byte ctlHilite; /* (not used) */
  59.    Word ctlValue; /* First member in display */
  60.    LongProcPtr ctlProc; /* Address of list definition procedure */
  61.    LongProcPtr ctlAction; /* Address of list action procedure */
  62.    LongWord ctlData; /* Low = view size; High = total members */
  63.    LongWord ctlRefCon; /* Not used */
  64.    Ptr ctlColor; /* Null for default colors */
  65.    VoidProcPtr ctlMemDraw; /* Address of routine to draw members */
  66.    Word ctlMemHeight; /* Member's Height in Pixels */
  67.    Word ctlMemSize; /* Bytes in member record */
  68.    MemRecPtr ctlList; /* Adress of first member record in array */
  69.    CtlRecHndl ctlListBar; /* Handle of list contrlo's scroll bar control */
  70. } ;
  71. typedef struct ListCtlRec ListCtlRec, *ListCtlRecPtr, **ListCtlRecHndl;
  72. struct ListRec {
  73.    Rect listRect; /* Enclosing Rectangle */
  74.    Word listSize; /* Number of List Members */
  75.    Word listView; /* Max Viewable members */
  76.    Word listType; /* Bit Flag */
  77.    Word listStart; /* First member in view */
  78.    CtlRecHndl listCtl; /* List control's handle */
  79.    VoidProcPtr listDraw; /* Address of Custom drawing routine */
  80.    Word listMemHeight; /* Height of list members */
  81.    Word listMemSize; /* Size of Member Records */
  82.    MemRecPtr listPointer; /* Pointer to first element in MemRec array */
  83.    LongWord listRefCon; /* becomes Control's refCon */
  84.    BarColorsPtr listScrollClr; /* Color table for list's scroll bar */
  85. } ;
  86. typedef struct ListRec ListRec, *ListRecPtr, **ListRecHndl;
  87. extern pascal ListCtlRecHndl CreateList() inline(0x091C,dispatcher);
  88. extern pascal void DrawMember() inline(0x0C1C,dispatcher);
  89. extern pascal void DrawMember2() inline(0x111C,dispatcher);
  90. extern pascal LongProcPtr GetListDefProc() inline(0x0E1C,dispatcher);
  91. extern pascal void ListBootInit() inline(0x011C,dispatcher);
  92. extern pascal void ListReset() inline(0x051C,dispatcher);
  93. extern pascal void ListShutDown() inline(0x031C,dispatcher);
  94. extern pascal void ListStartUp() inline(0x021C,dispatcher);
  95. extern pascal Boolean ListStatus() inline(0x061C,dispatcher);
  96. extern pascal Word ListVersion() inline(0x041C,dispatcher);
  97. extern pascal void NewList() inline(0x101C,dispatcher);
  98. extern pascal void NewList2() inline(0x161C,dispatcher);
  99. extern pascal MemRecPtr NextMember() inline(0x0B1C,dispatcher);
  100. extern pascal Word NextMember2() inline(0x121C,dispatcher);
  101. extern pascal MemRecPtr ResetMember() inline(0x0F1C,dispatcher);
  102. extern pascal Word ResetMember2() inline(0x131C,dispatcher);
  103. extern pascal void SelectMember() inline(0x0D1C,dispatcher);
  104. extern pascal void SelectMember2() inline(0x141C,dispatcher);
  105. extern pascal void SortList() inline(0x0A1C,dispatcher);
  106. extern pascal void SortList2() inline(0x151C,dispatcher);
  107. #endif
  108.